package api

import (
	"api_getway/handler/request"
	"github.com/gin-gonic/gin"
	"log"
	"net/http"
)

// 支付宝回调
func AlipayCallback(c *gin.Context) {
	log.Println("--------------------收到支付宝回调--------------------")
	////Alipay回调通常通过application/x-www-form-urlencoded格式发送参数，需要先解析表单数据才能获取参数
	//
	//if err := c.Request.ParseForm(); err != nil {
	//	log.Printf("解析表单失败: %v", err)
	//	return
	//}
	//
	//outTradeNo := c.Request.PostForm["out_trade_no"][0]
	//tradeStatus := c.Request.PostForm["trade_status"][0]
	//// 打印所有表单参数，用于调试
	//log.Printf("所有回调参数: %v，%v", outTradeNo, tradeStatus)
	//
	////0-待支付,1-已支付，2-已取消，3-支付失败

	log.Println("f1d1cc0a-f57a-49b0-a4cb-842ff32412ac", 0)

	log.Println("----------------收到支付宝回调--------------------")

	var req request.UpdateStatueReq
	// 根据 Content-Type Header 推断使用哪个绑定器。
	if err := c.ShouldBind(&req); err != nil {
		c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
		return
	}

	//up, err := config.MemberClient.UpdateMember(c, &__.UpdateMemberReq{
	//	OrderSn:         req.OrderSn,
	//	OrderStatus:     req.OrderStatus,
	//	MemberStatus:    req.MemberStatus,
	//	MemberExpiredAt: req.MemberExpiredAt,
	//})
	//if err != nil {
	//	c.JSON(http.StatusBadRequest, gin.H{
	//		"code": 400,
	//		"msg":  "订单状态更新失败",
	//	})
	//	return
	//}

	c.JSON(http.StatusOK, gin.H{
		"msg":     "支付宝回调成功，会员信息更新成功",
		"code":    200,
		"orderSn": "f1d1cc0a-f57a-49b0-a4cb-842ff32412ac",
	})
}

//WAIT_BUYER_PAY	交易创建，等待买家付款。  0
//TRADE_CLOSED	未付款交易超时关闭，或支付完成后全额退款。  2
//TRADE_SUCCESS	交易支付成功。1
//TRADE_FINISHED	交易结束，不可退款。
